Several prior techniques have been evolved for, or are susceptible of adaptation to, testing computer-based equipment by way of externally connected apparatus. Among such prior methods involving the concept of testing by control of the computer are processor analyzer methods and processor emulation methods. Examples of equipment using these methods are: The Advanced Microprocessor Development System manufactured by the assignee of the present invention, GenRad, Inc., Los Angeles, Calif., described, for example, in Manual No. 2300-5004-00 of that company, 1979, entitled "Future Data Universal Logic Analyzer Manual," and in an article entitled "Architecture based on multiple .mu.Ps, buses booster in-circuit emulation", appearing in Electronics Design, 9, Apr. 26, 1979, p. 52-55; The MicroSystem Analyzer manufactured by Millennium Systems Inc., Cupertino, Calif., described in their bulletin "Millenium" of 12/79; and Microprocessor Analyzer manufactured by AQ Systems Inc., Yorktown Heights, N.Y., described in their bulletin "Microprocessor Analyzer (MPA) Model AQ 6800." Prior process analyzer and emulation techniques are described, also, in "Microprocessor Troubleshooting Techniques," D. Wiseman, Electronics Test, Vol. 3, No. 2, February 1980, p. 42 on; in "Testing Microprocessor Products in the Field," Electronics Test, Vol. 2, No. 9, September 1979, p. 43, on; and in the Proceedings-Automated Testing for Electronics Manufacturing & Test Instruments Conference, January 7-10, 1980 "An Advance In Test Strategy Development For A Microcomputer PC Board", P. Hansen, p. 17, on.
In connection with the processor analyzer approach, such analyzers generally attach to the processor of the controlled computer and are used to observe and display data associated with its operation. They have, however, a limited ability to influence program content and execution.
The processor emulators, on the other hand, contain a computer system similar to that of the equipment under test and, in application, the processor of the emulator replaces that of the equipment, requiring the equipment processor to be removable. By means of switch functions, a system for program execution can be made up selectively of parts of the emulator and parts of the equipment. A program, for example, can be run with part of it in the memory in each; or the system clock can be taken from either. Emulators are generally used in new product development and debugging activities.
Both process analyzers and emulators do make some use of the capabilities of the equipment. They may require, for example, that certain interrupt vectors be available for use by the testing device, or they may use particular locations in equipment memory. A design objective of analyzers and emulators is to minimize all such forms of dependence upon shared facilities, or to bring about a quality called "transparency". Analyzers and emulators can be made "transparent" to a high degree, but they thereby become complex and expensive.
It is, accordingly, a principal object of the present invention to provide a new and improved method of and apparatus for external control of computers that shall not be subject to the above-described limitations, but in application, provides a simple means of computer control with concomitant benefits in reliability of operation and in cost, important because application is intended for a wide variety of computer types in which adapting prior art methods and apparatus would cause extensive complexity, particularly since computer architecture varies more in program flow control aspects than in other aspects, such as memory and input-output device interfaces.
It is a further object of the invention to use a minimum of features of the computer being controlled, so that faults in such features, or normal use of such features by the equipment associated with the computer, will not interfere with proper operation of the controlling apparatus, thereby imposing few, if any, constraints upon the design or operation of computer equipment required for application of the method and apparatus of the invention.
Straightforward application of prior art processor emulation methods, furthermore, may, at times, disconnect a memory element from the processor part of the computer being controlled. If the memory element is of the dynamic memory type, such disconnection from the processor, that normally supplies refresh signals to the memory, can result in loss of memory data, which is a further handicap in application of such methods. Another object of the invention, accordingly, is to provide a technique and apparatus that obviates such limitations by maintaining normal connection and memory refresh operation in the computer equipment when it is under external control.
It is also an object of the invention to provide a novel computer program flow control technique possessing the ability to establish and capture, or perhaps recapture, program flow in the computer being controlled. Clearly it is necessary to establish or begin, program instruction sequence execution from a specific point in memory after the apparatus has been connected to the computer equipment and various power and other conditions for operation have been obtained. It is desirable to be able to re-establish program execution in a known way, sometimes in the event that the sequence of computer instruction execution should, for some reason, proceed in an unanticipated way. Such reasons are not uncommon and stem from errors in program content, faults in equipment, unanticipated states in equipment, etc.
Other and further objects will be explained hereinafter and are more particularly delineated in the appended claims.